/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Agenda;
import java.io.*;
import java.util.ArrayList;

/**
 *
 * @author UNSAAC73
 */

public class Serializacion {

    
    public ArrayList Lista;
    public Serializacion(ArrayList Lista)
    {
        /*constructor*/
        this.Lista = Lista;
    }

    
    public void Serealizar(String Nombre)
    {
         //--colocamos los objetos en disco
        try{
            //--creamos el archivo
            FileOutputStream fs = new FileOutputStream(Nombre + ".ser");
            //--posee el metodo writeObject()
            ObjectOutputStream os =  new ObjectOutputStream(fs);
            //--serializamos el objeto
            for (int i= 0; i < Lista.size(); i++) {
                CPersona Persona = (CPersona)Lista.get(i);
                try{
                os.writeObject(Persona);
                }
                catch(Exception e){
                    e.toString();
                }
            }
            //--cerramos el archivo
            os.close();
        }catch(FileNotFoundException e){
            e.printStackTrace();
        } catch(IOException e){
            e.printStackTrace();
        }
    }
    
    /*======================== OVERRIDE ===============================*/
    /*reescribimos los metodos writeobject*/
    public static void agregar()
    {

    }
    public  static void main(String[] args){
        CNombre nombre= new CNombre("asff", "beto", "cesar");
        CDireccion dir= new CDireccion("sdd", "sr", "ssd","ss","syt","srgg");
        CPersona a = new CPersona(nombre,dir);


        //iniciar el proceso de serializacion
        //colocar los objetos a1 y a2 en disco
        
        try {
            //creamos el archivo
            FileOutputStream fs= new FileOutputStream("AgendaPersona.ser");
            //esta clase tiene el metodo writeobject() q necesitamos
            
            ObjectOutputStream os = new ObjectOutputStream(fs);
            
            //el metodo writeobject() serializa el objeto
            // y lo escribe en el archivo
            
            os.writeObject(a);
            
            
            //hay q cerrar siempre el archivo
            
            os.close();
            System.out.println("Los objetos se han  serilaizado correctamente");
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            
        } catch(IOException e){
            e.printStackTrace();
        }
        
        
        
    }
}
